iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
Security

我的30天資安攻之路防身修練:實戰×工具×AI全紀錄系列 第 19

【DAY19】深入後量子密碼(PQC)與量子密碼

  • 分享至 

  • xImage
  •  

以下是加強且完整的鐵人賽技術報告,含理論背景與實作詳細步驟,包含安裝環境、Qiskit 量子電路示範與 PQC 加密原理與實務,確保內容豐富且連貫,方便你直接作為競賽文檔或簡報使用。


鐵人賽技術報告 — 深入後量子密碼(PQC)與量子密碼實作

1. 背景與挑戰

隨著即將到來的量子計算大爆發,傳統數位世界的加密基石——RSA、ECC 等非對稱加密演算法正面臨前所未有的破解威脅。量子電腦強大的運算能力能在數秒內破解原本需數百年才能完成的數學難題。因此,研發能抵抗量子電腦攻擊的加密技術成為全球資安的頭等大事。

後量子密碼(PQC)和量子密碼(Quantum Cryptography)正是現今科技界最前沿的研究方向,我們的任務是借助先進的工具與開源環境,落實這些理論於實作,提升未來資安防線的韌性。


2. 系統環境搭建詳細步驟

2.1 安裝 Anaconda 與虛擬環境設置

  1. 下載並安裝 Anaconda(適用 Windows/Linux/macOS),方便管理 Python 環境與套件。
  2. 開啟「Anaconda Prompt」,創建專案專用虛擬環境,防止套件衝突:
    https://ithelp.ithome.com.tw/upload/images/20250920/20168357EhhqGSsThx.png

https://ithelp.ithome.com.tw/upload/images/20250920/20168357bfcKHI4qRr.png
打開JapterLab2的虛擬程式

bash
conda create -n pqc_env python=3.10
conda activate pqc_env

  1. 在虛擬環境中安裝所需套件:

    bash
    conda install -c conda-forge qiskit qiskit-aer
    pip install kyber-py

  2. 啟動 Jupyter Notebook 進行實驗:

    bash
    conda install notebook
    jupyter notebook

(只能說這個虛擬機有救了我!他是以網頁本機端方式呈現!所以架設環境沒有那麼嚴格,動動手指就會了)


3. 量子電路示範與 Qiskit 實驗

3.1 BB84 協定核心演示

BB84協定是量子密碼中設計發送及接收安全金鑰的經典方法,我們用 Qiskit 搭建其基礎運作電路:
https://ithelp.ithome.com.tw/upload/images/20250920/20168357dEF8iyGrEe.png

電路圖解釋
q 是量子位元線,c 是經典位元線。
紅色方塊H(Hadamard Gate):把量子位元推入「超級態」這代表測量時有一半機率得到0、一半機率得到1。

這個電路是量子金鑰匙分散(QKD)、量子密碼排列的核心流程。量子位元只要被測量就失去了多少性,強化量子密碼「竊聽必尋」的物理學。

在BB84或其他QKD實驗中,大量複製這個基本電路,可以實驗證明金鑰分配過程的安全性。

3.2 測試與錯誤修正關鍵點

  • 當遇 ImportError: cannot import name 'Aer' 時,先透過 Anaconda Prompt 重新安裝 Aer 相關套件:
    bash
    conda install -c conda-forge qiskit-aer

  • 每次套件安裝後,務必重啟 Notebook kernel,避免舊有緩存影響。
    (我到這部的時候發現是Notebook一直有紅字錯誤之後發現好像是虛擬機套件沒有裝好,但電腦沒有電了,所以等等再補截圖吧!)


4. 後量子密碼(PQC)實作步驟

4.1 KYBER 公開金鑰演算法介紹

  • Kyber 是 NIST 推薦的格基加密演算法,提供抗量子攻擊的公鑰加密方案。

  • 使用 kyber-py 開源庫,在 Python 環境呼叫核心函數:

    import kyber

    建立密鑰對

    public_key, private_key = kyber.generate_keypair()

    使用公鑰加密訊息

    ciphertext = kyber.encrypt(public_key, b"Hello PQC")

    使用私鑰解密

    plaintext = kyber.decrypt(private_key, ciphertext)

    print(plaintext)

https://ithelp.ithome.com.tw/upload/images/20250920/201683578anYZwfYtU.png
這邊error是因為有些套件未安裝完整想要有完整密碼套件也可以去github下載


5. 為什麼要寫量子電路與量子密碼?

隨著科技步伐加快,量子電腦正在快速崛起,這代表我們現有大多數網際網路傳輸安全的基石——像是 RSA、ECC 等非對稱加密技術——正面臨前所未有的挑戰。量子電腦可以藉由 Shor 演算法在極短時間內破解這些加密系統。量子密碼並非簡單在傳統密碼上加強破解難度,而是從物理層面根本改革安全防護,利用量子力學的「疊加態」、「不可複製定理」及「測不準原理」。

其實我們今天只有練習到最基本的最基本,而且我也不太了解量子密碼後的真正佈局今天只是用虛擬機來測試跟古典密碼有何差別!


快進入鐵人賽尾聲了,後天(21開始)我們會寫一個專案架設網站(雖然是在本機端)但還是可以測試一些網路攻擊、資料庫攻擊及其他駭客可奪去在網站上的任何資料把前二十天的文全部總和一下!


上一篇
【DAY18】小插曲:資安概論簡介及小筆記!
下一篇
【DAY20】密碼學完結:常見私密鑰防護
系列文
我的30天資安攻之路防身修練:實戰×工具×AI全紀錄23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言